﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CommonClasses.Model;

namespace CommonClasses
{
    /// <summary>
    /// Описывает метод, который обрабатывает изменение состояния виртуального пина
    /// </summary>
    /// <param name="virtualPinIn">Номер виртуального пина, состояние которого изменилось.</param>
    /// <param name="new_state">Новое состояние пина.</param>
    public delegate void PinStateChangedHandler(int virtualPin, int newState);
    
    /// <summary>
    /// Описывает метод, который обрабатывает изменение состояния Dirty модуля
    /// </summary>
    /// <param name="sender">модуль, состояние которого меняется</param>
    /// <param name="NewState">новое состояние Dirty</param>
    public delegate void DirtyChangedHandler(IDocumentEditor sender, bool NewState);

    /// <summary>
    /// Описывает метод, который обрабатывает сообщение о реультатах компиляции
    /// </summary>
    /// <param name="report">Отчёт об ошибках компиляции</param>
    public delegate void CompilationResultHandler(ErrorReport report);

    /// <summary>
    /// Описывает метод, который обрабатывает получение строкового сообщения.
    /// </summary>
    /// <param name="message">Текст сообщения</param>
    public delegate void StringMessageHandler(string message);

    /// <summary>
    /// Описывает метод, который обрабатывает срабатываение точки останова.
    /// </summary>
    /// <param name="textpoint">Точка в тексте модуля</param>
    public delegate void BreakpointFiredHandler(ILPMEDTextPoint textpoint);

    /// <summary>
    /// Описывает метод, который обрабатывает изменение значения переменной.
    /// </summary>
    /// <param name="variable">Описание переменной.</param>
    public delegate void VariableStateChangedHandler(ILPMEDVariable variable);
}
